package com.base.leetcode;

import java.rmi.Remote;

/**
 * @Author: hdhao
 * @Create: 2023/3/29 - 23:15
 * @Version: v1.0
 */
//根据值删除节点
public class Leetcode203 {
    public static void main(String[] args) {
        ListNode o5 = new ListNode(6, null);
        ListNode o4 = new ListNode(3, o5);
        ListNode o3 = new ListNode(6, o4);
        ListNode o2 = new ListNode(2, o3);
        ListNode o1 = new ListNode(1, o2);
        System.out.println(o1);
        System.out.println("-------------------------");
        ListNode res = removeElementByVal(6, o1);
        System.out.println(res);

    }
    //根据值删除节点
    public static ListNode removeElementByVal(int val,ListNode head){
        //哨兵节点
        ListNode s = new ListNode(-1,head);
        ListNode p1 = s;
        ListNode p2 = s.next;
        while (p2 !=null){
            if (p2.val == val){
                //删除 p2向后平移
                p1.next = p2.next;
                p2 = p2.next;
            }else {
                //p1 p2 向后平移
                p1 = p1.next;
                p2 = p2.next;
            }
        }
        return s.next;
    }
}
